#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <string.h>
#include <fcntl.h>

int main(int argc, char* argv[])
{
    if(argc != 2) {
        printf("Filename error!\n");
        exit(1);
    }

    int fd = open(argv[1], O_RDWR | O_CREAT, 0777);
    if(fd == -1) {
        perror("open error: ");
        exit(1);
    }

    write(fd, "Hello Kitty!", 13);

    // 此时，文件读写位置在末尾
    // 需要偏移到读写位置
    lseek(fd, 0, SEEK_SET);  // 注释掉看结果

    char buf[256] = {0};
    int ret = read(fd, buf, sizeof(buf));
    
    if(ret) {
        write(STDOUT_FILENO, buf, ret);
    }

    
    close(fd);
    return 0;
}

